package ThreadAndLambda.LambdaTest;

/*
    lambda表达式有参数有返回值的写法
    需求：
        给定一个计算器接口calculator接口，内含抽象方法calc可以将两个int类型数字相加得到和
        使用lambda调用invokeCalc方法，完成计算
*/
public class InvokeCalcTest {
    public static void main(String[] args) {
        //使用匿名内部类
        invokeCalc(20, 30, new Calculator() {
            @Override
            public int calc(int a, int b) {
                return a + b;
            }
        });


        //使用lambda表达式简化写法
        invokeCalc(40, 50, ( a,  b) -> {
            return a + b;
        });
    }

    public static void invokeCalc(int a, int b, Calculator calculator) {
        int result = calculator.calc(a, b);
        System.out.println(result);
    }
}
